package com.hd.sup.modules.vehicle.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hd.sup.core.rest.dto.TData;
import com.hd.sup.modules.enterprise.model.Enterprise;
import com.hd.sup.modules.vehicle.model.Vehicle;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 车辆信息表 服务类
 * </p>
 *
 * @author chentl123
 * @since 2020-12-28
 */
public interface IVehicleService extends IService<Vehicle> {

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 车辆列表分页查询
     * @date 2020/12/31 3:08 下午
     * @params [page, vehicle]
     */
    List<Map<String, Object>> pageList(Page page, Vehicle vehicle);

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 查询所有市的车辆总数聚合数据
     * @date 2021/1/4 9:58 上午
     * @params [regionCode, lengthL,lengthR]
     */
    List<Map<String, Object>> getAllVehicleMap(String regionCode, Integer lengthL, Integer lengthR);

    /**
     * @return java.lang.Integer
     * @author chentl
     * @description 根据行政编码查询 该区域车辆总数
     * @date 2021/1/5 6:19 下午
     * @params [regionCode, deptIds]
     */
    Integer countVehicleNum(String regionCode, String transType, List<String> deptIds);

    /**
     * @return void
     * @author chentl
     * @description 生成企业静态数据
     * @date 2021/1/14 9:32 上午
     * @params [List, enterpriseNo, enterpriseName]
     */
    void generateVehicle(List<TData> data, String enterpriseNo, String enterpriseName);

    /**
     * @return void
     * @author chentl
     * @description 根据ids删除
     * @date 2021/3/11 10:52 上午
     * @params [ids]
     */
    void deleteByIds(List<String> ids);

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 查询所有车辆map，驼峰命名
     * @date 2021/3/11 4:20 下午
     * @params []
     */
    List<Map<String, Object>> selectAllMaps();
}
